CALL WriteLog(MM.PrgName' - Started') ; DO i=0 FOR MM.TagName.Count ; PARSE VAR MM.TagName.i MM.FromArea MM.ToArea ; DO t=0 FOR MM.Alias.Count ; DROP Messages. ; MM_GetAreaInfo MM.FromArea Info
IF UPPER(Info.Type) = 'MAIL' THEN DO ; MM_SearchMsgs MM.FromArea Messages '#?' MM.Alias.t '#?' IMP !INTR !SENT ; END ; ELSE MM_SearchMsgs MM.FromArea Messages '#?' MM.Alias.t '#?' IMP !SENT ; IF Rc = 0 THEN DO ; CALL WriteLog('.') ; CALL WriteLog('Found' Messages.Count 'unprocessed request in area 'MM.FromArea) ; DO n = 0 FOR Messages.Count ; MM_ReadMsg MM.FromArea Messages.n Msg ; IF Rc = 0 THEN DO ; CALL WriteLog('.') ; CALL WriteLog('Processing Message #'Messages.n) ; CALL WriteLog('From: 'Msg.From) ; CALL WriteLog(' To: 'Msg.To ) ; CALL WriteLog(' Req: 'Msg.Subj) ; MM.To = Msg.From ; MM.ToAddr = Msg.FromAddr ; MM.Subj = Msg.Subj ; MM.Area = MM.ToArea ; CALL ProcessRequest(MM.Subj) ; END ; END ; END ; END ; END ; DO i=0 FOR MM.TagName.Count ; PARSE VAR MM.TagName.i MM.FromArea MM.ToArea ; MM_GetAreaInfo MM.ToArea Info ; IF Info.Type ~= 'MAIL' THEN MM_Export MM.ToArea ; END ; CALL writelog(mm.prgName' - Ended') ; EXIT
ProcessRequest: PROCEDURE EXPOSE MM. ; PARSE ARG MM.Find ; MM_WriteStem MM.TempFile MM.Banner ; MM.Find = TRANSLATE(MM.Find,' ','/') ; MM.Find.Count = WORDS(MM.Find) ; DO y=1 TO MM.Find.Count ; ADDRESS COMMAND MM.Search WORD(MM.Find,y) ; IF Rc = 0 THEN DO ; MM.Status = TRUE ; END ; END ; IF MM.Status = TRUE THEN DO ; DROP Reply. ; CALL WriteLog('Stat: ** Found And Reply') ; CALL ReplyMsg() ; END ; ELSE CALL WriteLog('Stat: ** Not Found') ; RETURN
ReadConfig: PROCEDURE EXPOSE MM. ; MM.Banner.count = 0 ; MM.TagName.count = 0 ; MM.Alias.count = 0 ; MM_ReadStem MM.PathCfg||'MM_AllFix.Cfg' Config ; IF Rc ~= 0 THEN DO ; SAY '*** Error: Can not open config "'MM.PathCfg'/MM_AllFix.cfg"' ; EXIT 10 ; END ; DO l = 0 FOR Config.Count ; IF (LEFT(Config.l,1) ~= ';') & Config.l ~= '' THEN DO ; PARSE VAR Config.l Keyword Dato ; SELECT ; WHEN UPPER(Keyword) = '#FILES' THEN MM.Files = STRIP(Dato) ; WHEN UPPER(Keyword) = '#ALIAS' THEN MM_AddToStem MM.Alias 'Dato' ; WHEN UPPER(Keyword) = '#TAGNAME' THEN MM_AddToStem MM.TagName 'Dato' ; WHEN UPPER(Keyword) = '#BANNER' THEN MM_AddToStem MM.Banner 'Dato' ; OTHERWISE ; END ; END ; END ; MM_GetSysOp 'MM.SysOp' ; RETURN